﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using Osobe;
using SkolskaUstanova;
using MolbeIPotvrde;

namespace ElektronskiDnevnik
{
    public partial class PravdanjeIzostanakaN : Form
    {
        String JMBG;
        MySqlConnection conn;
        MySqlDataReader rdr = null;
        Razred razred;
        List<Prisustvo> prisustva;
        String odabraniUcenik;
        List<String> sifre;
        int brojOznacenihIzostanaka = 0;
        int brojac = 1;
        ListView.CheckedListViewItemCollection checkedItems;
        public PravdanjeIzostanakaN(String maticni, MySqlConnection c)
        {
            InitializeComponent();
            JMBG = maticni;
            conn = c;
            prisustva = new List<Prisustvo>();
            sifre = new List<String>();
            MySqlCommand cmd1 = new MySqlCommand("SELECT * FROM Razred WHERE Razrednik = '" + JMBG + "';", conn);
            try
            {
                rdr = cmd1.ExecuteReader();
                while (rdr.Read())
                {
                    razred = new Razred(Convert.ToInt32(rdr["ID"]), Convert.ToInt32(rdr["Odjeljenje"]), Convert.ToInt32(rdr["Godina"]), 3, Convert.ToString(rdr["Razrednik"]), "", Convert.ToString(rdr["SkolskaGodina"]));

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (rdr != null)
                    rdr.Close();
            }
        }

        private void Form16_Load(object sender, EventArgs e)
        {
            MySqlCommand cmd = new MySqlCommand("SELECT * FROM Ucenik WHERE Razred = " + razred.Sifra + ";", conn);
            try
            {
                rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                  listBox1.Items.Add(Convert.ToString(rdr["Ime"]) + " " + Convert.ToString(rdr["Prezime"]));
                  sifre.Add(Convert.ToString(rdr["JMBG"]));
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (rdr != null)
                    rdr.Close();
            }
        }

        private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
        {
            Font font = new Font("Segoe Print", 16, FontStyle.Regular);
            SolidBrush brush = new SolidBrush(Color.Salmon);
            StringFormat sf = new StringFormat();
            sf.Alignment = StringAlignment.Center;
            e.Graphics.DrawString("Razred: " + razred.Godina + "-" + razred.Odjeljenje, font, brush, 32, 10);
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            listView1.Enabled = true;
            listView1.Items.Clear();
            brojOznacenihIzostanaka = 0;
            textBox6.Clear();
            textBox7.Clear();
            brojac = 1;
            textBox2.Text = "";
            textBox3.Text = "";
            checkBox1.Checked = false;
            int indeks = listBox1.SelectedIndex;
            odabraniUcenik = sifre[indeks];
            prisustva.Clear();
            MySqlCommand cmd = new MySqlCommand("SELECT * FROM PrisustvoPogled WHERE JMBG = '" + odabraniUcenik + "';", conn);
            try
            {
                rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    String razlog, prisutan, opravdan, potvrda;
                    if (rdr["Razlog"] == null)
                        razlog = "";
                    else
                        razlog = Convert.ToString(rdr["Razlog"]);
                    if (rdr["Prisutan"] == null)
                        prisutan = "";
                    else
                        prisutan = Convert.ToString(rdr["Prisutan"]);
                    if (rdr["Opravdan"] == null)
                        opravdan = "";
                    else
                        opravdan = Convert.ToString(rdr["Opravdan"]);
                    if (rdr["Potvrda"] == null)
                        potvrda = "";
                    else
                        potvrda = Convert.ToString(rdr["Potvrda"]);
                    Prisustvo pr = new Prisustvo(Convert.ToInt32(rdr["IDPrisustva"]), Convert.ToDateTime(rdr["Datum"]), prisutan, opravdan, razlog, potvrda);
                    prisustva.Add(pr);

                }
                for (int i = 0; i < prisustva.Count(); i++)
                {
                    System.Windows.Forms.ListViewItem item1 = new System.Windows.Forms.ListViewItem();
                    if ((prisustva[i]).Prisutan == "ne" && ((prisustva[i]).Potvrdjeno == "" || (prisustva[i]).Potvrdjeno == "ne"))
                    {
                        item1 = listView1.Items.Add(Convert.ToString(prisustva[i].Sifra));
                        item1.SubItems.Add(Convert.ToDateTime(prisustva[i].Datum).Day + "." + Convert.ToDateTime(prisustva[i].Datum).Month + "." + Convert.ToDateTime(prisustva[i].Datum).Year);
                        item1.SubItems.Add(prisustva[i].Pravdanje);
                        item1.SubItems.Add(prisustva[i].Potvrdjeno);
                        item1.SubItems.Add(prisustva[i].Razlog);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (rdr != null)
                    rdr.Close();
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            brojOznacenihIzostanaka = 0;
            textBox6.Clear();
            textBox7.Clear();
            brojac = 1;
            checkedItems = listView1.CheckedItems;
            foreach (ListViewItem item in checkedItems)
                brojOznacenihIzostanaka++;
            if (brojOznacenihIzostanaka == 0)
                MessageBox.Show("Niste nista oznacili!", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
            {
                listView1.Enabled = false;
                textBox1.Text = ((checkedItems[0]).SubItems[3]).Text;
                textBox2.Text = ((checkedItems[0]).SubItems[1]).Text;
                textBox3.Text = ((checkedItems[0]).SubItems[2]).Text;
                textBox6.Text = Convert.ToString(brojac);
                textBox7.Text = Convert.ToString(brojOznacenihIzostanaka);
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (brojOznacenihIzostanaka == 0)
                MessageBox.Show("Niste nista oznacili!", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
            {
                textBox1.Clear();
                if (brojac != brojOznacenihIzostanaka)
                {
                    textBox1.Text = ((checkedItems[brojac]).SubItems[4]).Text;
                    textBox2.Text = ((checkedItems[brojac]).SubItems[1]).Text;
                    textBox3.Text = ((checkedItems[brojac]).SubItems[2]).Text;
                    brojac++;
                    checkBox1.Checked = false;
                    textBox6.Text = Convert.ToString(brojac);
                }
                else
                {
                    MessageBox.Show("Nema vise...", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (brojOznacenihIzostanaka == 0)
                MessageBox.Show("Niste nista oznacili!", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
            {
                MySqlCommand cmd;
                int sifra = Convert.ToInt32((checkedItems[brojac - 1]).Text);
                if (textBox1.Text == "")
                    MessageBox.Show("Trebate unijeti razlog izostajanja sa nastave.", "Upozorenje", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else     
                {
                    if (checkBox1.Checked == true)
                    {
                        cmd = new MySqlCommand("UPDATE Prisustvo SET Pravdanje = 1, Razlog = '" + textBox1.Text + "', Potvrdjeno = 1 WHERE ID = " + sifra + ";", conn);
                        cmd.ExecuteNonQuery();
                        MessageBox.Show("Izostanak je opravdan.", "Obavijest", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                    if (checkBox1.Checked == false)
                    {
                        cmd = new MySqlCommand("UPDATE Prisustvo SET Pravdanje = 0, Razlog = '" + textBox1.Text + "', Potvrdjeno = 1 WHERE ID = " + sifra + ";", conn);
                        cmd.ExecuteNonQuery();
                        MessageBox.Show("Izostanak nije opravdan.", "Obavijest", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    
                }
               
            }
        }


    }
}
